// pages/my_cocktails/my_cocktails.js
Page({
  /**
   * 页面的初始数据
   */
  data: {
    myRecipes: [],
    filteredRecipes: [],
    searchKeyword: '',
    isLoading: true,
    emptyImageSrc: 'https://images.unsplash.com/photo-1551024709-8f23befc6f87?q=80&w=500',
    tabBarActive: 2, // 在custom-tab-bar中的位置
    
    // 编辑相关
    showEditModal: false,
    currentEditItem: null,
    currentEditIndex: -1,
    editName: '',
    editIngredients: '',
    editDesc: '',
    editTaste: '',     // 口感描述
    editGuide: '',     // 饮用指南
    editHealth: '',    // 健康指南
    editSetting: '',   // 理想场景
    editStory: ''      // 小知识
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    this.loadMyRecipes();
  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {
    // 每次显示页面时重新加载数据，确保数据是最新的
    this.loadMyRecipes();
    
    // 设置TabBar选中状态
    if (typeof this.getTabBar === 'function' && this.getTabBar()) {
      this.getTabBar().setData({
        selected: this.data.tabBarActive
      });
    }
  },

  /**
   * 加载历史配方数据
   */
  loadMyRecipes: function() {
    this.setData({
      isLoading: true
    });
    
    try {
      // 从本地存储加载历史配方数据
      const historyList = wx.getStorageSync('cocktail_history') || [];
      
      this.setData({
        myRecipes: historyList,
        filteredRecipes: historyList,
        isLoading: false
      });
    } catch (e) {
      console.error('获取历史配方数据失败:', e);
      this.setData({
        isLoading: false
      });
      
      wx.showToast({
        title: '加载数据失败',
        icon: 'none'
      });
    }
  },

  /**
   * 搜索输入
   */
  onSearchInput: function(e) {
    const keyword = e.detail.value;
    this.setData({
      searchKeyword: keyword
    });
    this.filterRecipes(keyword);
  },

  /**
   * 清空搜索
   */
  clearSearch: function() {
    this.setData({
      searchKeyword: '',
      filteredRecipes: this.data.myRecipes
    });
  },

  /**
   * 根据关键词过滤特调
   */
  filterRecipes: function(keyword) {
    if (!keyword) {
      this.setData({
        filteredRecipes: this.data.myRecipes
      });
      return;
    }
    
    const keywordLower = keyword.toLowerCase();
    const filtered = this.data.myRecipes.filter(item => {
      // 仅根据鸡尾酒名称进行搜索
      return item.name && item.name.toLowerCase().includes(keywordLower);
    });
    
    this.setData({
      filteredRecipes: filtered
    });
  },

  /**
   * 查看特调详情
   */
  viewRecipeDetail: function(e) {
    const index = e.currentTarget.dataset.index;
    const item = this.data.filteredRecipes[index];
    
    // 找到原始数据中的索引
    const originalIndex = this.data.myRecipes.findIndex(i => 
      i.timestamp === item.timestamp
    );
    
    if (originalIndex !== -1) {
      wx.navigateTo({
        url: '/pages/result/result?id=' + originalIndex // 直接使用原始索引，不再使用偏移值
      });
    }
  },

  /**
   * 创建新特调
   */
  createNewRecipe: function() {
    // 跳转到特调创建页面
    wx.navigateTo({
      url: '/pages/cocktail/cocktail'
    });
  },

  /**
   * 编辑特调
   */
  editRecipe: function(e) {
    // catchtap已经阻止了事件冒泡，不需要调用stopPropagation
    const index = e.currentTarget.dataset.index;
    const item = this.data.filteredRecipes[index];
    
    console.log("要编辑的特调数据:", item); // 调试信息
    
    // 处理配料数据，确保它是字符串形式
    let ingredients = item.ingredients;
    if (Array.isArray(ingredients)) {
      ingredients = ingredients.join('\n');
    } 
    
    // 提供默认值，确保所有字段都有值
    const defaultTaste = '这款鸡尾酒口感清爽怡人，甜酸适中，回味悠长。入口甘醇，略带果香，余韵中蕴含微妙的草本气息。';
    const defaultGuide = '建议冰镇后饮用，可配以柠檬片或薄荷叶点缀。轻轻摇晃后饮用，以充分体验其独特风味。';
    const defaultHealth = '酒精含量适中，建议适量饮用。如您正在服药或有特殊健康状况，请咨询医生后饮用。';
    const defaultSetting = '非常适合晚间休闲时光或与朋友小聚时享用。搭配轻音乐和温馨灯光效果更佳。';
    const defaultStory = '这款特调灵感源于经典鸡尾酒文化，融合现代调酒工艺，为您带来独特的味蕾体验。每一口都蕴含调酒师的匠心与热情。';
    
    // 设置要编辑的数据
    this.setData({
      showEditModal: true,
      currentEditItem: item,
      currentEditIndex: index,
      editName: item.name || '未命名特调',
      editIngredients: ingredients || '',
      // 移除单独的description字段，直接使用result页面对应的各个字段
      editTaste: item.taste || defaultTaste,
      editGuide: item.guide || defaultGuide,
      editHealth: item.health || defaultHealth,
      editSetting: item.setting || defaultSetting,
      editStory: item.story || defaultStory
    });
  },

  /**
   * 关闭编辑弹窗
   */
  closeEditModal: function() {
    this.setData({
      showEditModal: false,
      currentEditItem: null,
      currentEditIndex: -1
    });
  },
  
  /**
   * 输入框内容变化处理
   */
  onEditInput: function(e) {
    const field = e.currentTarget.dataset.field;
    const value = e.detail.value;
    
    // 根据字段更新对应的值
    const updateData = {};
    updateData[field] = value;
    this.setData(updateData);
  },

  /**
   * 保存编辑内容
   */
  saveEdit: function() {
    const editItem = this.data.currentEditItem;
    const index = this.data.currentEditIndex;
    
    if (!editItem || index < 0) {
      this.closeEditModal();
      return;
    }
    
    // 找到原始数据中的索引
    const originalIndex = this.data.myRecipes.findIndex(i => 
      i.timestamp === editItem.timestamp
    );
    
    if (originalIndex !== -1) {
      // 处理配料数据，转换为数组形式
      let ingredients = this.data.editIngredients;
      if (ingredients && typeof ingredients === 'string') {
        // 如果有换行符，按换行分割为数组
        if (ingredients.includes('\n')) {
          ingredients = ingredients.split('\n').filter(line => line.trim());
        } 
        // 如果有逗号，按逗号分割为数组
        else if (ingredients.includes(',')) {
          ingredients = ingredients.split(',').map(item => item.trim()).filter(item => item);
        }
      }
      
      // 更新数据
      const updatedRecipes = [...this.data.myRecipes];
      updatedRecipes[originalIndex] = {
        ...updatedRecipes[originalIndex],
        name: this.data.editName,
        ingredients: ingredients,
        // 不再单独添加description字段
        taste: this.data.editTaste,
        guide: this.data.editGuide,
        health: this.data.editHealth,
        setting: this.data.editSetting,
        story: this.data.editStory,
        updatedAt: new Date().getTime() // 添加更新时间
      };
      
      console.log("更新后的特调数据:", updatedRecipes[originalIndex]); // 调试信息
      
      // 更新本地存储和页面数据
      wx.setStorageSync('cocktail_history', updatedRecipes);
      
      this.setData({
        myRecipes: updatedRecipes
      });
      
      // 更新过滤后的列表
      this.filterRecipes(this.data.searchKeyword);
      
      wx.showToast({
        title: '已更新',
        icon: 'success'
      });
      
      this.closeEditModal();
    }
  },

  /**
   * 删除特调
   */
  deleteRecipe: function(e) {
    // catchtap已经阻止了事件冒泡，不需要调用stopPropagation
    const index = e.currentTarget.dataset.index;
    const item = this.data.filteredRecipes[index];
    
    wx.showModal({
      title: '确认删除',
      content: '确定要删除这个特调吗？此操作不可恢复。',
      success: (res) => {
        if (res.confirm) {
          // 找到原始数据中的索引
          const originalIndex = this.data.myRecipes.findIndex(i => 
            i.timestamp === item.timestamp
          );
          
          if (originalIndex !== -1) {
            // 从数组中移除
            const updatedRecipes = [...this.data.myRecipes];
            updatedRecipes.splice(originalIndex, 1);
            
            // 更新本地存储和页面数据
            wx.setStorageSync('cocktail_history', updatedRecipes);
            
            this.setData({
              myRecipes: updatedRecipes
            });
            
            // 更新过滤后的列表
            this.filterRecipes(this.data.searchKeyword);
            
            wx.showToast({
              title: '已删除',
              icon: 'success'
            });
          }
        }
      }
    });
  },

  /**
   * 返回上一页
   */
  goBack: function() {
    wx.navigateBack();
  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {
    return {
      title: '我的特调作品 - 今日微醺',
      path: '/pages/index/index',
      imageUrl: this.data.myRecipes.length > 0 ? this.data.myRecipes[0].image : ''
    };
  }
}); 